package com.diligent.cloud.sfc.service;

import com.canny.commons.model.ObjectResult;
import com.canny.commons.model.Result;
import com.diligent.cloud.sfc.model.enums.StopReason;
import com.diligent.cloud.sfc.model.params.WoOrderCompleteParams;
import org.springframework.http.ResponseEntity;

import javax.validation.constraints.NotNull;
import java.security.Principal;

/**
 * WorkshopSceneService interface
 *
 * @author xf107278
 * @date 3/28/2020
 */
public interface WorkshopSceneService {

    ResponseEntity<Result> machStop(StopReason stopReason,String remark ,String machCode,Principal principal);



    ResponseEntity<ObjectResult> updateMat(@NotNull String matCode, @NotNull String matName, @NotNull String machCode, Principal principal);


    ResponseEntity<Result> modifyMdStatus(String matCode,Principal principal);


    ResponseEntity<Result> modifyAsStatus(Long asId, Principal principal);

    ResponseEntity<Result> insertMfgMachEven(Principal principal);

    ResponseEntity<Result> updateMould(Long mdId, Long orderId, String accessToken, String previousModelId,Principal principal) throws Exception;

    ResponseEntity<Result> updateAluminumStick(Long asId, Long mdId, Long orderId, Principal principal);

    ResponseEntity<Result> getEquipmentMaintenance(Principal principal);

    ResponseEntity<Result> getDevEnvironmentInfo(String devMac, Principal principal);

    ResponseEntity<Result> addMatMd(Principal principal);

    ResponseEntity<Result> addMatAa(Principal principal);

    ResponseEntity<Result> getWarmingStatusAaList(String machCode, String material,String systemId);

    ResponseEntity<Result> getWarmingStatusMdList(String machCode, String matCodeCv,String systemId);

    ResponseEntity<Result> moldRelease(Long mdId ,  Principal principal);

    ResponseEntity<Result> inbox(WoOrderCompleteParams orderCompleteParams, Principal principal);

    ResponseEntity<Result> inboxDetail(Long orderId,String prodBatch, String machCode, Long systemId);

    ResponseEntity<Result> getDevInfo(Boolean login, Principal principal);

    ResponseEntity<Result> modifyDev(Long machId, Principal principal);

    ResponseEntity<Result> getDevInfo(String machName);

}
